package com.geo.keyword.entity;

import lombok.Data;
import lombok.Builder;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;

/**
 * 关键词分析响应实体类
 * 
 * @author GEO Team
 * @version 1.0
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class KeywordAnalysisResponse {
    
    /**
     * 分析结果ID
     */
    private String analysisId;
    
    /**
     * 关键词文本
     */
    private String keywordText;
    
    /**
     * 分析类型
     */
    private String analysisType;
    
    /**
     * 竞争度分析结果
     */
    private String competitionAnalysis;
    
    /**
     * 搜索意图分析
     */
    private String searchIntentAnalysis;
    
    /**
     * 相关性分析
     */
    private String relevanceAnalysis;
    
    /**
     * 趋势分析
     */
    private String trendAnalysis;
    
    /**
     * 语义分析
     */
    private String semanticAnalysis;
    
    /**
     * 优化建议
     */
    private String optimizationSuggestions;
    
    /**
     * 内容策略建议
     */
    private String contentStrategy;
    
    /**
     * 长尾关键词建议
     */
    private String longTailSuggestions;
    
    /**
     * 竞品关键词分析
     */
    private String competitorKeywords;
    
    /**
     * 机会关键词
     */
    private String opportunityKeywords;
    
    /**
     * 分析置信度
     */
    private Double confidenceScore;
    
    /**
     * 分析耗时
     */
    private Long analysisDuration;
    
    /**
     * 使用的token数量
     */
    private Integer tokensUsed;
    
    /**
     * 分析成本
     */
    private Double analysisCost;
    
    /**
     * AI模型名称
     */
    private String aiModel;
    
    // Getters and Setters (由@Data注解自动生成)
    
    /**
     * 设置分析结果ID
     * @param analysisId 分析结果ID
     */
    public void setAnalysisId(String analysisId) {
        this.analysisId = analysisId;
    }
    
    /**
     * 设置关键词文本
     * @param keywordText 关键词文本
     */
    public void setKeywordText(String keywordText) {
        this.keywordText = keywordText;
    }
    
    /**
     * 设置竞争度分析结果
     * @param competitionAnalysis 竞争度分析结果
     */
    public void setCompetitionAnalysis(String competitionAnalysis) {
        this.competitionAnalysis = competitionAnalysis;
    }
    
    /**
     * 设置搜索意图分析
     * @param searchIntentAnalysis 搜索意图分析
     */
    public void setSearchIntentAnalysis(String searchIntentAnalysis) {
        this.searchIntentAnalysis = searchIntentAnalysis;
    }
    
    /**
     * 设置优化建议
     * @param optimizationSuggestions 优化建议
     */
    public void setOptimizationSuggestions(String optimizationSuggestions) {
        this.optimizationSuggestions = optimizationSuggestions;
    }
    
    /**
     * 设置分析置信度
     * @param confidenceScore 分析置信度
     */
    public void setConfidenceScore(Double confidenceScore) {
        this.confidenceScore = confidenceScore;
    }
}